app.filter('daterange', function () {
    return function (conversations, start_date, end_date) {
        var result = [];

        // date filters
        var start_date = (start_date && !isNaN(Date.parse(start_date))) ? Date.parse(start_date) : 0;
        var end_date = (end_date && !isNaN(Date.parse(end_date))) ? Date.parse(end_date) : new Date().getTime();

        // if the conversations are loaded
        if (conversations && conversations.length > 0) {
            $.each(conversations, function (index, conversation) {
                var conversationDate = new Date(conversation.date_posted);

                if (conversationDate >= start_date && conversationDate <= end_date) {
                    result.push(conversation);
                }
            });

            return result;
        }
    };
});